// 7-1 动态内存中数据排序
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    scanf("%d", &n);
    int *l = malloc(n * sizeof(int));  // 默认不会出错
    for (int i=0; i<n; i++) {
        scanf("%d", l+i);
    }
    for (int i=0; i<n-1; i++) {
        int min = i;
        for (int j=i; j<n; j++) {
            if (*(l+min) > *(l+j)) {
                min = j;
            }
        }
        int t = *(l+min);
        *(l+min) = *(l+i);
        *(l+i) = t;
    }
    for (int i=0; i<n; i++) {
        printf((i==n-1)?"%d":"%d ", *(l+i));
    }
    printf("\n");
    return 0;
}